package red.social;

import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class ResultBusq extends Activity {
	Bundle parametros;
	String ip;
	Fila[] amigos;
	Integer[] idencontrados;
	ListView lstEncontrados;
	Context context;
	String nombreamigo;
	int idusuario;
	Bitmap imagen;
	
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.resultbusq);
		context = this.getApplicationContext();
		ip = getResources().getString(R.string.ip);
		parametros = getIntent().getExtras();
		nombreamigo = parametros.getString("nombreamigo");
		idusuario = parametros.getInt("idusuario");
		String nombre;
		String apellidos;
		String email;
		String estado;
		try {
			String servletURL = "http://" + ip
					+ ":8080/Modulo10-war/BuscaAmigo";

			URL ob = new URL(servletURL + "?namigo=" + nombreamigo
					+ "&idusuario=" + idusuario);
			URLConnection conn = ob.openConnection();
			conn.setDoInput(true);
			conn.setDoOutput(true);
			InputStream in = conn.getInputStream();
			ObjectInputStream dos = new ObjectInputStream(in);
			
			int tamano = dos.readInt();
			amigos = new Fila[tamano];
			byte[] bimagen;
			if (tamano != 0) {
				amigos = new Fila[tamano];
				idencontrados = new Integer[tamano];

				for (int i = 0; i < tamano; i++) {
					idencontrados[i] = dos.readInt();
					nombre = (String)dos.readObject();
					apellidos = (String)dos.readObject();
					email = (String)dos.readObject();
					estado = (String)dos.readObject();
					bimagen = (byte[])dos.readObject();
					imagen = BitmapFactory.decodeByteArray(bimagen, 0, bimagen.length);
					amigos[i] = new Fila(nombre+" "+apellidos+"\n"+email+"\n"+"Estado: "+estado, imagen, context);		
					Adaptador adaptador = new Adaptador (this);
					lstEncontrados = (ListView)findViewById(R.id.lstencontrados);	
					lstEncontrados.setAdapter(adaptador);
				}
				dos.close();

				lstEncontrados
						.setOnItemClickListener(new OnItemClickListener() {

							public void onItemClick(AdapterView<?> parent,
									View view, int position, long id) {

								String ida = String
										.valueOf(idencontrados[position]);
								Intent miIntent = new Intent(
										getApplicationContext(),
										PerfilAmigoEncontrado.class);
								miIntent.putExtra("idusuario", idusuario);
								miIntent.putExtra("idamigo", ida);
								startActivity(miIntent);
							}
						});
			}
			else {
				CharSequence text = "No se encontraron amigos con ese nombre";
				int duration = Toast.LENGTH_LONG;

				Toast toast = Toast.makeText(getApplicationContext(), text,
						duration);
				toast.show();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	class Adaptador extends ArrayAdapter {

		Activity context;

		Adaptador(Activity context) {
			super(context, R.layout.fila, amigos);
			this.context = context;
		}

		public View getView(int position, View convertView, ViewGroup parent) {
			View item = convertView;
			ViewHolder holder;
			try {
				if (item == null) {

					LayoutInflater inflater = context.getLayoutInflater();
					item = inflater.inflate(R.layout.fila, null);

					holder = new ViewHolder();
					holder.foto = (ImageView) item.findViewById(R.id.Foto);
					holder.info = (TextView) item.findViewById(R.id.Info);

					item.setTag(holder);

				} else {
					holder = (ViewHolder) item.getTag();
				}

				holder.info.setText(amigos[position].getInfo());
				holder.foto.setImageBitmap(amigos[position].getbitmap());
			} catch (Exception e) {
				e.printStackTrace();
			}
			return (item);
		}
	}

	static class ViewHolder {
		ImageView foto;
		TextView info;
	}

}
